package com.linsen.erp.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.linsen.erp.admin.entity.DeptEntity;
import com.linsen.erp.admin.provider.dto.DeptDTO;
import com.linsen.erp.admin.provider.vo.DeptVO;

import java.util.List;

/**
 * <p>
 * 部门表 服务类
 * </p>
 *
 * @author zhaoyong
 * @since 2023-07-24
 */
public interface IDeptService extends IService<DeptEntity> {
    /**
     * 获取指定部门关联的全部子级部门id列表（返回结果包含本部门id）
     * @param deptid
     * @return
     */
    List<String> getSubDeptidList(String deptid);

    /**
     * 全部部门列表（树形结构）
     * @return
     */
    List<DeptVO> getDeptList();

    /**
     * 获取部门详情
     * @param id
     * @return
     */
    DeptVO get(String id);

    /**
     * 新增部门
     * @param deptDTO
     */
    void saveDept(DeptDTO deptDTO);

    /**
     * 修改部门
     * @param deptDTO
     */
    void updateDept(DeptDTO deptDTO);

    /**
     * 删除部门
     * @param id
     */
    void delete(String id);

    /**
     * 根据部门id获取父类区域id
     * @param deptid
     * @return
     */
    String getParentAreaByDeptId(String deptid);

    /**
     * 根据部门id获取父类公司id
     * @param deptid
     * @return
     */
    String getParentCompanyByDeptId(String deptid);
}
